<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/8/27
 * Time: 15:11
 */

namespace Shop;

//判断权限
if(!defined("SHOP")){
    header("Location:../index.php");
}

class View{
    public $data=array(); //公共属性来传递参数

    //1.加载模板的方法
    public function display($file=''){
        $file=empty($file)?SHOP_F:$file; //如果没有值就引入和方法同名的模板

       //$fiel 引入模板的名字
        //加载模板
        $path=SHOP_VIEW.str_replace('Controller','',SHOP_C).'/'.$file.'.html';
        if(is_file($path)){
            //定义变量,让HTML直接使用参数,不需要$this去访问
            foreach ($this->data as $k=>$v){
                $$k=$v; //使用可变变量,声明一个$k 值的变量
            }

            include $path;
        }else{
            exit('模板文件不存在!');
        }
    }


    //2.定义公共方法,实现传递参数
    public function assign($name,$value){
        $this->data[$name]=$value;
    }

    /***后台加载公共模板**/
    public function Ainc($name='_header'){
        include SHOP_VIEW."Public/$name.html";
    }

    //定义生成url 方法
    //$c : 控制器
    //$f : 方法和参数
    public function U($c='',$f=''){
        //如果没有传递 c 和 F 就是使用当前控制器和当前方法
        $c=$c?$c:str_replace('Controller','',SHOP_C);
        $f=$f?$f:SHOP_F;

        if(SHOP=='Admin'){
            echo "/admin.php?C=$c&F=$f";
        }else{
            echo "/index.php?C=$c&F=$f";
        }

    }

    /***前台加载公共模板**/
    public function Hinc($name='header'){
        include SHOP_VIEW."Public/$name.html";
    }
}